Extensible Effects: an alternative to Monad Transformers